package totask.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Future;
import javax.validation.constraints.FutureOrPresent;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.io.Serializable;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("项目表")
public class TotaskProject implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    /**
     * 项目id
     */
    @ApiModelProperty("项目id")
    private Integer projectId;

    /**
     * 项目名称
     */
    @NotEmpty(message = "项目名称不能为空")
    @ApiModelProperty("项目名称")
    private String projectname;

    /**
     * 创建人id
     */
    @NotEmpty(message = "创建人id不能为空")
    @ApiModelProperty("创建人id")
    private String createnameid;


    /**
     * 创建时间
     */
    @FutureOrPresent(message = "必须指定为当前时间或者是未来的一个时间")
    @ApiModelProperty("创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    private Date projectcreatetime;

    /**
     * 结束时间
     */
    @Future(message = "必须为未来的一个时间")
    @ApiModelProperty("结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    private Date projectendtime;

    /**
     * 项目当前状态
     */
    @NotNull(message = "项目当前状态不能为空")
    @ApiModelProperty("项目当前状态")
    private Integer projectstatusid;

}